#pragma once

#include "koopa.h"

// Koopa_IR解析
void KoopaParse(const char *str, std::ostream &out);					// 载入Koopa_IR，调用Visit解析
void Visit(const koopa_raw_program_t &program, std::ostream &out);		// 解析程序
void Visit(const koopa_raw_slice_t &slice, std::ostream &out);			// 解析raw slice
void Visit(const koopa_raw_value_t &value, std::ostream &out);			// 解析指令
void Visit(const koopa_raw_function_t &func, std::ostream &out);		// 解析函数
void Visit(const koopa_raw_basic_block_t &bb, std::ostream &out);		// 解析基本块
void Visit(const koopa_raw_return_t &ret, std::ostream &out);			// 解析返回指令
void Visit(const koopa_raw_integer_t &integer, std::ostream &out);		// 解析整形数

